home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / mc / extfs / ualz < prev    next >
Text File  |  2009-10-25  |  1KB  |  69 lines

  1. #!/bin/sh
  2. #
  3. # Written by Pavel Roskin <proski@gnu.org>
  4. # (C) 2005 The Free Software Foundation.
  5. #
  6. #
  7.  
  8. UNALZ=unalz
  9.  
  10. mcualz_list ()
  11. {
  12.     $UNALZ -l "$1" | mawk -v uid=`id -nu` -v gid=`id -ng` '
  13. {
  14.     if ($1 ~ /[0-9][0-9][:/][0-9][0-9][:/][0-9][0-9]$/)
  15.     {
  16.     # Kludge for non-POSIX date format in unalz 0.50
  17.     split($1, date, "[/:]")
  18.     if (length(date[1]) == 4) {
  19.         pdate = date[2] "/" date[3] "/" date[1]
  20.     } else {
  21.         pdate = date[1] "/" date[2] "/" date[3]
  22.     }
  23.  
  24.     time=$2
  25.     perm=$3
  26.     size=$4
  27.     sub(/^ *[^ ]* *[^ ]* *[^ ]* *[^ ]* *[^ ]* */, "")
  28.     file=$0
  29.     gsub(/\\/, "/", file)
  30.     if (perm ~ /.D../)
  31.         perm = "drwxr-xr-x"
  32.     else
  33.         perm = "-rw-r--r--"
  34.     printf "%s 1 %s %s %d %s %s %s\n", perm, uid, gid, size, pdate, time, file
  35.     }
  36. }
  37. '
  38. }
  39.  
  40. mcualz_copyout ()
  41. {
  42.     TMPDIR=`mktemp -d ${MC_TMPDIR:-/tmp}/mctmpdir-ualz.XXXXXX` || exit 1
  43.  
  44.     # This is a workaround for a bug in unalz 0.50 - it crashes if the
  45.     # output directory is an absolute path.
  46.     dir=`dirname "$TMPDIR/$2"`
  47.     mkdir -p "$dir"
  48.  
  49.     $UNALZ -d "$TMPDIR" "$1" "$2" >/dev/null
  50.     cat "$TMPDIR/$2" > "$3"
  51.     rm -rf "$TMPDIR"
  52. }
  53.  
  54. # override any locale for dates
  55. LC_ALL=C
  56. export LC_ALL
  57. umask 077
  58.  
  59. cmd="$1"
  60. shift
  61.  
  62. case "$cmd" in
  63.   list)    mcualz_list    "$@" ;;
  64.   copyout) mcualz_copyout "$@" ;;
  65.   *) exit 1 ;;
  66. esac
  67.  
  68. exit 0
  69.